/**
 * 
 */
package io.gitee.falllee.dao.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import io.gitee.falllee.dao.enums.JdbcTypeEnum;

/**
 * @author batty
 *
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Column {
    /**
     * 字段名
     * @return
     */
    String value() default "";
    
    /**
     * 是否主键
     * @return
     */
    boolean key() default false;
    
    /**
     * 是否映射，如果为false,则在插入或更新时不处理实体对应的字段，不影响查询
     * @return
     */
    boolean map() default true;
    
    /**
     * jdbc类型，默认(DEFAULT)会自动根据字段的javaType->jdbcType转换
     * 比如java的Date(默认->TIMESTAMP)可以对应Date,TIMESTAMP，可以手动指定映射
     * @return
     */
    JdbcTypeEnum jdbcType() default JdbcTypeEnum.DEFAULT;
    
    /**
     * 顺序
     * @return
     */
    int order() default 0;
}
